home *** CD-ROM | disk | FTP | other *** search
/ European Smalltalk User Group 2004 September / esugcd.iso / Dolphin5 / Dolphin Smalltalk Value Edition 5.1.msi / Data1.cab / Advanced_tips.tip next >
Text File  |  2003-01-27  |  8KB  |  34 lines

  1. Lagoon deployments <em,>must</em> be run on NT/2000/XP in order for Dolphin to be able to update exe/dll resources. When deploying an exectuable this will mean that Dolphin is merely unable to update the version resource. When deploying an Active-X DLL, however, this prevents Dolphin from binding in a type library, and in consequence it will be necessary to ship such as a separate file and register it.
  2. In order for your view to accept drops you must set its <i>isDropTarget</i> aspect to true in the View Composer as well as setting up handlers for the #dragEnter:, #dragOver:, and #drop: events in the owning presenter's #createSchematicWiring.
  3. You can move a method to a particular category by holding down the SHIFT key and dragging the method into the category in the class browser. The method is removed from all other categories apart from public/private.
  4. You can remove a method from an individual category by holding down the ALT key and dragging the method into that category in the class browser. Any other categories of the method are unaffected.
  5. There are a number of handy accelerator key sequences linked to common code refactorings:<UL><LI>Ctrl+T - Extract to Temporary</LI><LI>Ctrl+Shift+T - Inline Temporary</LI><LI>F2 - Rename Selection</LI><LI>Ctrl+[ - Move Temporary to Inner Scope</LI><LI>Ctrl+M - Extract to Method</LI><LI>Ctrl+Shift+M -  Inline Message</LI></UL>
  6. Don't know how to write a particular method? Simply create a stub method containing a <i>self halt</i> expression and cause the method to be invoked. Once in the Debugger you will find that the extra context of call stack, arguments, instance variables, etc, somehow makes the problem seem much more concrete and easier to solve. 
  7. If you modify and save a method in, the Debugger it will automatically restart execution from the beginning of the new method so that you can either step through it, or continue execution having fixed a problem.
  8. One can associate an individual method of a class with a package other than that in which its class resides. Such methods are termed 'loose methods'. Loose methods are highlighted in magenta in the class browser methods list.
  9. To move a method into a particular package you can either use the 'Package...' command on the class browser's menus, or simply drag the method over the target package in the class browser. Resources, globals, and classes can be assigned to packages in a similar way.
  10. The 'Additional Tools' menu and folder are automatically generated from a list of tools registered with the system, and you can add your own tools to this menu so that they are integrated into the IDE.
  11. You can customize the views of any of the system tools to your own taste in the View Composer. To open your custom view by default simply change the 'defaultView' option for the corresponding tool to the name of your custom view.
  12. If you are using Dolphin on a system with limited screen real estate you can configure Dolphin to use the 'Basic class browser' view, which takes up much less space, by changing the Class Browser Shells defaultView option in Dolphin User Preferences. However be aware that this view has much less functionality.
  13. You can open more than one Package Browser by turning off its 'reuseIfOpen' option in Dolphin User Preferences. This can be handy if you want to repackage a lot of items using drag and drop between the two package browsers.
  14. Dolphin Professional users can rename a method temporary or parameter by simply selecting it in the browser workspace, pressing F2, entering the new name in the prompt, and the method will instantly be rewritten to use the new temporary name.
  15. A loose method is an individual method that is added to a package even though the class to which it belongs is not a member of the same package.  Loose methods are a means of augmenting the functionality in existing classes without having to modify packages that, perhaps, one does not own.
  16. Classes that have not yet been assigned to any Package are called <i>uncommitted classes</i>.  By default, new classes created in the Class Hierarchy browser are initially uncommitted.  It is possible, however, to set a Default Package where new classes will be created.
  17. A "zombie" is a hidden view object in your image that, for some reason, never correctly became associated with a visible window.  Typically this may happen if an error occurs when opening the view.  Zombies often keep alive large chains of objects preventing them from being garbage collected. Fortunately, one can get rid of most zombies using the Panic button in the System Folder toolbar.
  18. Modifying the instance variables of a class can make old binary filed instances of the class (e.g. in view resources) incompatible, and require that a class side #stbConvertFrom: method be written.
  19. STB conversions can be made easier by following certain simple rules:<UL><LI>always add new instance variables after existing ones<LI>avoid reordering existing instance variables<LI>never remove existing variables (just reserve them for later use)<LI>reserve a few extra instance variable slots for use at a later date</UL>.
  20. Avoid creating hard references to classes as this make it harder to later subclass that class for specialization purposes. Always add a 'constants' method the sole purpose of which is to return the class.
  21. The Package Browsers lists of classes, methods, globals and resources are multiple selection lists in order to make it easy to move these items between packages en masse, for example using drag & drop.
  22. A loose resource is a Resource that is added to a package even though the class to which it belongs is not a member of the same package.
  23. Dolphin allows the classification of classes and methods into multiple categories. In addition it has "pseudo" categories, the membership of which is calculated based on any criteria - browse the existing subclasses of VirtualMethodCategory to see how to add your own.
  24. You can dynamically vary the content of a menu quite easily. See definitions of #onAboutToDisplayMenu: for examples.
  25. The entire behaviour of a class, including inherited behaviour, can be displayed in a class browser by using the 'Show Inherited Methods' command on the method list context menu.
  26. It is a good idea to perform a "Panic" operation to clear away any "zombie" views before attempting to deploy applications. This will help avoid any problems during the deployment process, and may reduce the size of the resulting executable or DLL.
  27. You can use the run Dolphin console applications as Windows NT/2000/XP services using the SRVANY.EXE host program from the NT Resource Kit.
  28. If one provides a <b>class</b> side #initialize method then it is automatically executed when the class is installed as part of a package. Typically one does not in supersend class side #initialize methods.<i>idb</i> 
  29. If you want to remove a number of methods from a class then deleting each one individually can be time consuming. It can sometimes be quicker to add all the methods to an unused category, using drag-drop, and then use the categories remove option to delete the methods. <i>idb</i> 
  30. You can embed Symbols within a method - as in <i>#rememberToEditThis.</i>. These have no effect on the methods execution but can be quickly located later using the <b>Browse references</b> (Shift-F12) command. <i>idb</i> 
  31. The tab order of subviews is defined by the position of the individual and collective views within the ViewComposer's <i>View Hierarchy</i>. This arrangement can be altered using the <i>Modify/View Arrange</i> menu option. <i>idb</i> 
  32. STB files are created using the STB streaming mechanism (STBOutFiler, STBInFiler etc.) and are a means by which object instances can be exported from an image such that they can be transported and reloaded elsewhere.  
  33. You can use the graphical MoenTreeView (as demonstrated in the Class Hierarchy Diagram) in your own applications as a plug-in replacement for the normal TreeView. A point to note, however, is that the moen tree view must be embedded in a ScrollingDecorator in order to be able to scroll over a large tree.
  34. When deploying an executable a third party resource editor (such as ResHacker) can be used to include any icons, bitmaps, etc, that one needs in a custom stub copied from one of the standard stubs. This is particularly useful for ToGo executables. Don't forget to override SessionManager>>defaultResLibPath to answer the executable name, e.g. using #applicationName.